<?php
// +----------------------------------------------------------------------
// | 众联TK架构 [ ZoomTk ]
// +----------------------------------------------------------------------
// | 版权所有 2017~2037 成都众联思索科技有限公司 [ http://www.zoomtk.com ]
// +----------------------------------------------------------------------
// | 官方网站: http://www.sopvip.com
// +----------------------------------------------------------------------
// | QQ: 99139034 153788231
// +----------------------------------------------------------------------
// | 开源协议 ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------


namespace app\user\admin;

use app\admin\controller\Admin;
use app\common\builder\TKuitpl;
use util\Tree;
use think\Db;
class Service extends Admin{

    public function index(){
        // 获取查询条件
        // 数据列表
        $data_list = DB::name('seller')->select();
        foreach ($data_list as $key=>$val){
            $data_list[$key]['member_name']=Db::name('member')->where('member_id',$val['member_id'])->value('member_name');
        }

        // 分页数据
        // 使用TKuitpl快速创建数据表格
        return TKuitpl::make('table')
            ->setPageTitle('客服管理') // 设置页面标题
            ->setTableName('seller') // 设置数据表名
            ->setPrimaryKey('seller_id') // 设置页面标题
            ->setSearch(['id' => 'seller_id', 'seller_name' => '用户名']) // 设置搜索参数
            ->addColumns([ // 批量添加列
                ['seller_id', 'ID'],
                ['seller_name', '管理员'],
                ['member_name', '会员名'],
                ['really_name', '姓名'],
                ['right_button', '操作', 'btn']
            ])
            ->addTopButtons('add,delete') // 批量添加顶部按钮
            ->addRightButtons('edit,delete') // 批量添加右侧按钮
            ->setRowList($data_list) // 设置表格数据
            ->fetch(); // 渲染页面
    }
    /**
     * 新增
     * @author Sunday <153788231@qq.com>
     * @return mixed
     */
    public function add()
    {
        // 保存数据
        if ($this->request->isPost()) {
            $data = $this->request->post();
            // 验证
            $result = $this->validate($data, 'Service');
            // 验证失败 输出错误信息
            if(true !== $result) return $this->error($result);
            $member_id=Db::name('member')->where('member_name', $data['member_name'])->value('member_id');
            $seller_id=Db::name('seller')->where('admin_user_id', $data['admin_uid'])->find();
            if(!$member_id) return $this->error('未能找到会员用户');
            if($seller_id) return $this->error('当前客服号已经存在');
            $data=array(
                'seller_name'=>$data['seller_name'],
                'member_id'=> $member_id,
                'seller_group_id'=>1,
                'store_id'=>0,
                'is_admin'=>0,
                'really_name'=>$data['really_name'],
                'admin_user_id'=>$data['admin_uid'],
            );
            if ($user = Db::name('seller')->insert($data)) {
                return $this->success('新增成功', url('index'));
            } else {
                return $this->error('新增失败');
            }
        }
        $map = $this->getMap();
        $data_list =Db::name('admin_user')->where('status',1)->select();
        foreach ($data_list as $key=>$val){
            $data[$val['id']]=$val['username'];
         }
        // 使用TKuitpl快速创建表单
        return TKuitpl::make('form')
            ->setPageTitle('新增') // 设置页面标题
            ->addFormItems([ // 批量添加表单项
                ['select', 'admin_uid', '管理员账号', '', $data],
                ['text', 'seller_name', '客服昵称', '可以是中文'],
                ['text', 'really_name', '真实姓名', '客服人员真实姓名'],
                ['text', 'member_name', '会员账号'],
                ['radio', 'status', '状态', '', ['禁用', '启用'], 1]
            ])
            ->fetch();
    }

    /**
     * 编辑
     * @param null $id 用户id
     * @author Sunday <153788231@qq.com>
     * @return mixed
     */
    public function edit($id = null)
    {
        if ($id === null) return $this->error('缺少参数');

        // 保存数据
        if ($this->request->isPost()) {
            $data = $this->request->post();
            $member_id=Db::name('member')->where('member_name', $data['member_name'])->value('member_id');
            $member_name=Db::name('seller')->where('member_id', $member_id)->find();
            if(!$member_id) return $this->error('未能找到会员用户');
            if($member_name && $member_name['member_id']!= $member_id) return $this->error('当前客服会员号已经被使用');
            $data=array(
                'seller_id'=>$data['id'],
                'seller_name'=>$data['seller_name'],
                'member_id'=> $member_id,
                'seller_group_id'=>1,
                'store_id'=>0,
                'is_admin'=>0,
                'really_name'=>$data['really_name'],
            );
            if ($user = Db::name('seller')->where('seller_id', $data['seller_id'])->update($data)){
                return $this->success('编辑成功');
            } else {
                return $this->error('编辑失败');
            }
        }

        // 获取数据
        $info = Db::name('seller')->where('admin_user_id',UID)->find();
        $info['member_name']=Db::name('member')->where('member_id',$info['member_id'])->value('member_name');     // 使用TKuitpl快速创建表单
        return TKuitpl::make('form')
            ->setPageTitle('编辑') // 设置页面标题
            ->addFormItems([ // 批量添加表单项
                ['hidden', 'id',input('id')],
                ['text', 'seller_name', '客服昵称', '可以是中文'],
                ['text', 'really_name', '真实姓名', '客服人员真实姓名'],
                ['text', 'member_name', '会员账号'],
            ])
            ->setFormData($info) // 设置表单数据
            ->fetch();
    }

    /**
     * 删除用户
     * @param array $record 行为日志
     * @author Sunday <153788231@qq.com>
     * @return mixed
     */
    public function delete($record = [])
    {
        return $this->setStatus('delete');
    }
}